package com.ccys.db.vo.consultation;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @program: WhiteCoat
 * @description: 问诊订单和列表分页返回Vo
 * @author: ZhangJingCan
 * @create: 2023-12-27 16:10
 **/

@Data
@ApiModel("问诊订单和列表分页返回Vo")
public class ConsultationPageQueryVo {

    @ApiModelProperty(value = "这是BookingId", name = "id", example = "id")
    private String id;

    @ApiModelProperty(value = "订单编号", name = "code", example = "订单编号(页面显示为NO)")
    private String code;

    @ApiModelProperty(value = "有值的时候展示child，没值展示self", name = "childId", example = "有值的时候展示child，没值展示self")
    private String childId;

    //retail 就是 self
    @ApiModelProperty(value = "页面展示为(Profile)", name = "planType", example = "问诊使用的配套类型0:retail 1:AIA corporate;2:Direct corporate;3:AIA Healthshield;4:Subscription")
    private Integer planType;

    @ApiModelProperty(value = "页面(Delivery type)快递方式:1self collect自取 2deliver普通快递 3deliver(express)特快", name = "bookingDeliveryType", example = "1self collect自取 2deliver普通快递 3deliver(express)特快")
    private Integer bookingDeliveryType;

    @ApiModelProperty(value = "诊所名称", name = "clinicName", example = "诊所名称")
    private String clinicName;


    //=========================================以下是患者======================

    @ApiModelProperty(value = "患者ID", name = "memberId", example = "患者ID")
    private String memberId;

    @ApiModelProperty(value = "患者名字", name = "memberName", example = "患者名字")
    private String memberName;

    @ApiModelProperty(value = "患者邮箱", name = "memberEmail", example = "患者邮箱")
    private String memberEmail;

    @ApiModelProperty(value = "患者性别：0-女，1-男，-1 未知", name = "memberGender", example = "患者性别：0-女，1-男，-1 未知")
    private Integer memberGender;

    @ApiModelProperty(value = "患者年龄", name = "memberAge", example = "患者年龄")
    private Integer memberAge;

    @ApiModelProperty(value = "患者国家", name = "memberCountryName", example = "患者国家")
    private String memberCountryName;

    //=========================================以下是医生===========================

    @ApiModelProperty(value = "医生ID", name = "doctorId", example = "医生ID")
    private String doctorId;

    @ApiModelProperty(value = "医生名字", name = "doctorName", example = "医生名字")
    private String doctorName;

    @ApiModelProperty(value = "医生邮箱", name = "doctorEmail", example = "医生邮箱")
    private String doctorEmail;

    @ApiModelProperty(value = "医生性别：0-女，1-男，-1 未知", name = "doctorGender", example = "医生性别：0-女，1-男，-1 未知")
    private Integer doctorGender;

    @ApiModelProperty(value = "医生公司名称", name = "doctorCompanyName", example = "医生公司名称")
    private String doctorCompanyName;

    //======================================列表后面的公用字段

    @ApiModelProperty(value = "含税总价", name = "totalAmount", example = "含税总价")
    private BigDecimal totalAmount;

    //todo:这里暂时取的Booking表的创建时间
    @ApiModelProperty(value = "Consultation date列使用这个字段，问诊页的On going consultations里面Arrived at也取这个值", name = "consultationDate")
    private Date consultationDate;

    @ApiModelProperty(value = "status", name = "status")
    private Integer status;

    @ApiModelProperty(value = "subStatus", name = "subStatus")
    private Integer subStatus;

    @ApiModelProperty(value = "第一次删除的理由", name = "deleteReason", example = "第一次删除的理由")
    private String deleteReason;

    @ApiModelProperty(value = "病人隐藏问诊", name = "hideFromPatient", example = "病人隐藏问诊")
    private Integer hideFromPatient;

    @ApiModelProperty(value = "交货时间段", name = "deliveryTimeslot", example = "交货时间段")
    private String deliveryTimeslot;

    @ApiModelProperty(value = "交货的开始时间(UTC)", name = "patientSelectedDeliveryDate")
    private Date patientSelectedDeliveryDate;

    //时分秒字符串
    @ApiModelProperty(value = "快递时段的开始时分秒字符串",name = "dtlStartTime")
    private String dtlStartTime;

    //时分秒字符串
    @ApiModelProperty(value = "快递时段的结束时分秒字符串",name = "dtlEndTime")
    private String dtlEndTime;

    //时区
    @ApiModelProperty(value = "时区(数字)",name = "timeZone")
    private Integer timeZone;

    //后续增加的

    @ApiModelProperty(value = "咨询金额", name = "consultAmount")
    private BigDecimal consultAmount;

    @ApiModelProperty(value = "卖药金额", name = "pharmaAmount")
    private BigDecimal pharmaAmount;

    @ApiModelProperty(value = "(病人info里面的Consultations的Total claimable)可索赔总额", name = "totalClaimable")
    private BigDecimal totalClaimable;

    @ApiModelProperty(value = "(病人info里面的Consultations的Additional claim)附加索赔金额", name = "additionalClaim")
    private BigDecimal additionalClaim;

    @ApiModelProperty(value = "(病人info里面的Consultations的Total paid)支付总额", name = "totalPaid")
    private BigDecimal totalPaid;

    @ApiModelProperty(value = "(病人info里面的Consultations的Visit count)就诊次数", name = "visitCount")
    private Integer visitCount;

    @ApiModelProperty(value = "eapinfo的Consultation list里面的Doctor portal label字段", name = "label")
    private String label;

    @ApiModelProperty(value = "eapinfo的Consultation list里面的Consultation duration字段", name = "rateMinutes")
    private Integer rateMinutes;

    @ApiModelProperty(value = "病人使用的benefitId", name = "benefitId")
    private String benefitId;

    @ApiModelProperty(value = "病人info点击Adjust时修改需要带这个ID", name = "bookingBenefitConsultId")
    private String bookingBenefitConsultId;

    @ApiModelProperty(value = "(病人info里面的Consultations的Adjust的Total claimable)", name = "consultTotalClaimable")
    private BigDecimal consultTotalClaimable;

    @ApiModelProperty(value = "(病人info里面的Consultations的Adjust的Additional claim)", name = "additionalClaimAmount")
    private BigDecimal additionalClaimAmount;


    @ApiModelProperty(value = "医生端工作状态,1:可用(Available),-1:离开(away),这里主要是问诊页面的On going consultations分页的Doctor’s status列使用",name = "jobStatus")
    private Integer jobStatus;

    @ApiModelProperty(value = "医生年龄(已经计算好的值)",name = "doctorAge")
    private Integer doctorAge;

    @ApiModelProperty(value = "医生出生年月日(生日)",name = "doctorDob")
    private Date doctorDob;

    @ApiModelProperty(value = "问诊类型:1-online(在线问诊) 5-offline(线下问诊) 6-text-based", name = "consultationType")
    private Integer consultationType;

    @ApiModelProperty(value = "货币符号", name = "currency")
    private String currency;

    @ApiModelProperty(value = "医生接通时间(问诊里面的On going consultations分页的Consulted since列)",name = "departedOn")
    private Date departedOn;

//    @ApiModelProperty(value = "病人国家ID",name = "patientCountryOfResidence")
//    private String patientCountryOfResidence;

/**
 * total claimable:benefits
 * total paid:totalAmountPaid
 * visit count:TblBookingBenefitConsult.visitCount
 */


}
